package com.jd.oneday.month3;

/*
 *
 * 1.动态菱形
 *
 *      *
 *     ***
 *    ******
 *   ********
 *    ******
 *     ***
 *      *
 *
 * 2.杨辉三角形
 *  1 0 0 0 0 0 0
 *  1 1 0
 *  1 2 1
 *  1 3 3 1
 *  1 4 6 4 1
 *  1 5 10 10 5 1
 *
 * 3.  3位数的水仙花数
 * 135 = 1
 *
 *
 * 4. 0、1背包问题 动态规划
 *
 */

public class Day09_Test {
    public static void main(String[] args) {

        Day09_Test d = new Day09_Test();

//        Scanner c = new Scanner(System.in);
//        System.out.println("请输入菱形的行数：");
//        int m = c.nextInt();
//        d.diamond(m);

//        Scanner c = new Scanner(System.in);
//        System.out.println("请输入杨辉三角形的行数：");
//        int row = c.nextInt();
//        d.YHTriangle(row);

        d.daffodils();
    }

    /**
     * @param 打印三位数的水仙花数 135 = 1*1*1+3*3*3+5*5*5
     */

    public void daffodils() {
        for (int i = 100; i <= 999; i++) {
            //百位
            int a = i / 100;
            //十位
            int b = i % 100 / 10;
            //个位
            int c = i % 10;

            //判断是否为水仙花数
            if (a * a * a + b * b * b + c * c * c == i) {
                System.out.println("水仙花数" + i);
            }
        }

    }

    /**
     * @param row 杨辉三角形行数
     */
    public void YHTriangle(int row) {

        int[][] arr = new int[row][];

        //初始化数组
        for (int i = 0; i < arr.length; i++) {
            //确定每一行的长度
            arr[i] = new int[i + 1];
            //给第一行和第二行赋值
            arr[i][0] = arr[i][i] = 1;
        }

        //给数组元素赋值  注意下标开始位置
        for (int i = 2; i < arr.length; i++) {
            for (int j = 1; j < i; j++) {
                arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
            }
        }


        //遍历
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }
    }


    /**
     * 动态的菱形
     *
     * @param n 菱形的行数  奇数
     */

    public void diamond(int n) {

        int m = 1;
        for (int i = 1; i <= n; i++) {
            int a = 0;
            int b = i;
            int t = 0;
            for (int j = 1; j <= n / 2 + i + t; j++) {
                if (i <= n / 2 + 1) {
                    if (a <= n / 2 - b) {
                        System.out.print(" ");
                        b++;
                    } else {
                        System.out.print("*");
                        a++;
                    }

                } else {


                }

            }
            System.out.println();


        }


//        for (int i = 1; i <= n / 2 + 1; i++) {
//            int a = 0;
//            int b = i;
//            for (int j = 1; j <= n / 2 + i; j++) {
//
//                if (a <= n / 2 - b) {
//                    System.out.print("-");
//                    b++;
//                } else {
//                    System.out.print("*");
//                    a++;
//                }
//
//            }
//            System.out.println();
//        }
    }
}
